package ctrhost

import (
	"cloud_worm/util/uhttp"
	"cloud_worm/wormweb/controllers/ctrconfig"
)

type AgentInfo struct {
	WormId      string     `json:"worm_id"`
	Ip         string      `json:"ip"`
	Platform   string      `json:"platform"`
	Version    int         `json:"version"`
	ServerAddr string      `json:"server_addr"`
	Updated    int64       `json:"updated"`
}

/**
 agent host相关的一些统计计数的处理
 */
type CountController struct {
	ctrconfig.LoginCtr
}

// @Description: 仪表盘盘数据的数据格式定义
type WolAgentCnt struct {
	Sum         int
}

type DashCount struct {
	MachineCnt          int
	Online              WolAgentCnt
}
/**
 @Description：获取统计count数据，用于仪表盘的展示
 @Param:
 @Return：
 */
func (c *CountController) GetAllHostCount() {
	if c.Guest() == false {
		return
	}
	
	// TODO: XXXXXX
	
	data := map[string]interface{}{"count_online": 0, "count_offline": 0, "count_machine": 0}
	c.Data["json"] = uhttp.CreateOkResponse(data)
	c.ServeJSON()
	return
}

/**
 @Description：最近一段时间内上线、下线的机器list，todo：xxxxx
 @Param:
 @Return：
 */
func (c *CountController) RecentChange()  {
	return
}

/**
 曲线图相关的数据
 */
type TotalHost struct {
	OfflineCount int // 下线机器数
	OnlineCount  int // 在线机器数
	MachineCount int // 有效机器
}

// 每周 /host/dashboard/time?type=1
// 每月 /host/dashboard/time?type=2
func (c *CountController) GetAllHostCountWithTime() {
	if c.Guest() == false {
		return
	}

	// TODO:
	
	c.Data["json"] = uhttp.CreateOkResponse(nil)
	c.ServeJSON()
	return
	
}
